#include <cmath>
#include <cstddef>
#include <cstdlib>
#include <string>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <unordered_set>
#include <utility>
#include <iostream>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <numeric>
#include <iterator>
#include <iomanip>

using std::sqrt; using std::getline;
using std::vector; using std::list; using std::map; using std::set; using std::unordered_set;
using std::pair; using std::string;  
using std::istream; using std::ostream; 
using std::ifstream; using std::ofstream; using std::fstream;
using std::istringstream; using std::ostringstream; using std::stringstream;
using std::cin; using std::cout; using std::endl; using std::cerr;
using std::istream_iterator; using std::ostream_iterator;
using std::find;  using std::sort; using std::for_each;
using std::count; using std::count_if; using std::copy;
using std::back_inserter; using std::reverse_iterator;
using std::ios_base;
using std::boolalpha; using std::noboolalpha; 
using std::oct; using std::dec; using std::hex;
using std::showbase; using std::noshowbase;
using std::uppercase; using std::nouppercase;
using std::setprecision; using std::showpoint; using std::noshowpoint;
using std::scientific; using std::fixed;
using std::skipws; using std::noskipws; using std::flush; using std::ends;
using std::unitbuf; using std::nounitbuf; 
using std::setw; using std::right; using std::left; using std::internal;
using std::setfill;

ifstream& open_file(ifstream&, const string&);
